<template>
	<div class="mod-config">
		<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
			<el-form-item>
				<el-input v-model="dataForm.associationNumber" placeholder="关联号" clearable></el-input>
			</el-form-item>
			<el-form-item>
				<el-button @click="getDataList()">查询</el-button>
				<el-button v-if="isAuth('hotel:tdoorlock:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
				<el-button v-if="isAuth('hotel:tdoorlock:save')" type="primary" @click="showAddlist()">批量添加</el-button>
				<el-button v-if="isAuth('hotel:tdoorlock:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
			</el-form-item>
		</el-form>
		<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle" style="width: 100%;">
			<el-table-column type="selection" header-align="center" align="center" width="50">
			</el-table-column>
			<el-table-column prop="floorName" header-align="center" align="center" label="楼栋">
			</el-table-column>
			<el-table-column prop="floorCengName" header-align="center" align="center" label="楼层">
			</el-table-column>
			<el-table-column prop="floorRoomName" header-align="center" align="center" label="房间号">
			</el-table-column>
				<el-table-column align="center" label="关联号">
				  <template slot-scope="scope">
					<el-input v-model="scope.row.associationNumber" @change="dataFormSubmit(scope.row)"></el-input>
				  </template>
				</el-table-column>
				
			<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
				<template slot-scope="scope">
					<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
					<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
				</template>
			</el-table-column>
		</el-table>
		<el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex"
		 :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="totalPage" layout="total, sizes, prev, pager, next, jumper">
		</el-pagination>
		<!-- 弹窗, 新增 / 修改 -->
		<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>

		<el-dialog width="45%" title="批量添加" :visible.sync="showList" v-if="showList" append-to-body>
			<!-- <div>
		     <el-radio v-model="radiotype" label="1"></el-radio>
		   </div>
		   <div style="margin-top: 20px">
		     <el-radio v-model="radiotype" label="2" ></el-radio>
		   </div>
		   <div style="margin-top: 20px">
		     <el-radio v-model="radiotype" label="3" ></el-radio>
		   </div>
		   <div style="margin-top: 20px">
		     <el-radio v-model="radiotype" label="4" ></el-radio>
		   </div> -->
			<el-radio-group v-model="radiotype">
				<div>
					<el-radio label="1">关联号与房间号相同</el-radio>

				</div>
				<div style="margin-top: 20px">
					<el-radio label="2">
						关联号 = <el-input v-model="one" style="width:100px" @blur="sendNumber('one')"></el-input> + 房间号 +
						<el-input style="width:100px" v-model="two" @blur="sendNumber('two')"></el-input>
					</el-radio>
				</div>
				<div style="margin-top: 20px">
					<el-radio label="3">
						关联号 = <el-input v-model="three" style="width:100px" @blur="sendNumber('three')"></el-input> + 缺少首位的房间号 +
						<el-input style="width:100px" v-model="four" @blur="sendNumber('four')"></el-input>
					</el-radio>
				</div>
				<div style="margin-top: 20px">
					<el-radio label="4">
						关联号 =由 <el-input v-model="faa" style="width:100px" @blur="sendNumber('faa')"></el-input> +  开始随房间号递增一位
					</el-radio>
				</div>
			</el-radio-group>
			
			<div class="el-dialog__footer">
				<div slot="footer" class="dialog-footer">
					<el-button @click="showList=false">取 消</el-button>
					<el-button type="primary" @click="saveradiotype()">保 存</el-button>
				</div>
			</div>

		</el-dialog>
	</div>
</template>

<script>
	import AddOrUpdate from './tdoorlock-add-or-update'
	export default {
		data() {
			return {
				demo: {},
				dataForm: {
					key: ''
				},
				front:'',
				after:'',
				
				one:'',
				two:'',
				three:'',
				four:'',
				faa:'',
				radiotype: '',
				dataList: [],
				pageIndex: 1,
				pageSize: 10,
				totalPage: 0,
				dataListLoading: false,
				dataListSelections: [],
				addOrUpdateVisible: false,
				showList: false

			}
		},
		components: {
			AddOrUpdate
		},
		activated() {
			this.getDataList()
		},
		methods: {
			saveradiotype(){
				if(this.radiotype==""){
					this.$message({
					   message: '请选择',
					     type: 'error'
					})
					return false;
				}
				if(this.radiotype=="2"){
					this.front=this.one;
					this.after=this.two;
				}else if(this.radiotype=="3"){
					this.front=this.three;
					this.after=this.four;
				}else if(this.radiotype=="4"){
					this.front=this.faa;
				}
				
				this.$http({
				  url: this.$http.adornUrl(`/hotel/tdoorlock/saveList`),
				  method: 'post',
				  data: this.$http.adornData({
				    'front': this.front,
				    'after': this.after,
					'radiotype':this.radiotype
				  })
				}).then(({data}) => {
				  if (data && data.code === 0) {
				    this.$message({
				      message: '操作成功',
				      type: 'success',
				      duration: 1500,
				      onClose: () => {
				        this.showList=false
				        this.getDataList();
				      }
				    })
				  } else {
				    this.$message.error(data.msg)
				  }
				})
				
				
			},
			// 表单提交
			dataFormSubmit (row) {
				if(row.associationNumber==""){
					this.$message({
					   message: '关联号不能为空',
					     type: 'error'
					})
					return false;
				}
			      this.$http({
			        url: this.$http.adornUrl(`/hotel/tdoorlock/update`),
			        method: 'post',
			        data: this.$http.adornData({
			          'id': row.id || undefined,
			          'floorId': row.floorId,
			          'floorRoomid': row.floorRoomid,
			          'floorCengId': row.floorCengId,
			          'associationNumber': row.associationNumber,
			          'sellerId': row.sellerId
			        })
			      }).then(({data}) => {
			        if (data && data.code === 0) {
			          this.$message({
			            message: '操作成功',
			            type: 'success',
			            duration: 1500,
			            onClose: () => {
			            this.getDataList();
			            }
			          })
			        } else {
			          this.$message.error(data.msg)
			        }
			      })
			  
			},
			sendNumber(val){
				console.log(this[val])
			     var regEmail = /^[0-9]\d*$/;
				
						 if (this[val] != '' && !regEmail.test(this[val])) {
						       this.$message({
						       message: '请输入正确格式',
						         type: 'error'
						    })
						      this[val] = ''
						 }
				 
			},
			showAddlist() {
				this.showList = true;
			},
			// 获取数据列表
			getDataList() {
				this.dataListLoading = true
				this.$http({
					url: this.$http.adornUrl('/hotel/tdoorlock/list'),
					method: 'get',
					params: this.$http.adornParams({
						'page': this.pageIndex,
						'limit': this.pageSize,
						'associationNumber': this.dataForm.associationNumber
					})
				}).then(({
					data
				}) => {
					if (data && data.code === 0) {
						this.dataList = data.page.list
						this.totalPage = data.page.totalCount
					} else {
						this.dataList = []
						this.totalPage = 0
					}
					this.dataListLoading = false
				})
			},
			// 每页数
			sizeChangeHandle(val) {
				this.pageSize = val
				this.pageIndex = 1
				this.getDataList()
			},
			// 当前页
			currentChangeHandle(val) {
				this.pageIndex = val
				this.getDataList()
			},
			// 多选
			selectionChangeHandle(val) {
				this.dataListSelections = val
			},
			// 新增 / 修改
			addOrUpdateHandle(id) {
				this.addOrUpdateVisible = true
				this.$nextTick(() => {
					this.$refs.addOrUpdate.init(id)
				})
			},
			// 删除
			deleteHandle(id) {
				var ids = id ? [id] : this.dataListSelections.map(item => {
					return item.id
				})
				this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
					confirmButtonText: '确定',
					cancelButtonText: '取消',
					type: 'warning'
				}).then(() => {
					this.$http({
						url: this.$http.adornUrl('/hotel/tdoorlock/delete'),
						method: 'post',
						data: this.$http.adornData(ids, false)
					}).then(({
						data
					}) => {
						if (data && data.code === 0) {
							this.$message({
								message: '操作成功',
								type: 'success',
								duration: 1500,
								onClose: () => {
									this.getDataList()
								}
							})
						} else {
							this.$message.error(data.msg)
						}
					})
				})
			}
		}
	}
</script>
